Auto merge of #1822 - alexcrichton:fix-recursion, r=brson
authorbors <bors@rust-lang.org>
Tue, 21 Jul 2015 17:36:53 +0000 (17:36 +0000)
committerbors <bors@rust-lang.org>
Tue, 21 Jul 2015 17:36:53 +0000 (17:36 +0000)
commit5cf4a899156b73cc5811d5b76363abab04eb1425
tree25e3230e132f828c257a3d32594b0ee13b6a1bde
parent0faebf2e5493b54fba3da81fb805c6a4989ab586
parentdffb5078f26236eb97c3942bce0ea139932a736e
Auto merge of #1822 - alexcrichton:fix-recursion, r=brson

It looks like the empty string is leaking in as a feature to all crates being
published on crates.io unintentionally. This means that each dependency edge
activates the feature `""`. This in turn confuses the resolution process quite a
bit, causing it to be far more recursive than it should be.

The empty feature, `""`, is weeded out during activation of features but it's
never explicitly activated. This means that each new dependency we see has one
requested feature (the empty one) with no activated features (as it doesn't have
any). This ends up causing us to recurse to attempt to reactivate the
dependency. This extreme recursion ended up blowing the stack on some smaller
crates and this commit fixes that.